//index.js
//获取应用实例
const app = getApp()

Page({
  data: {
    motto: 'Hello World',
    userInfo: {},
    hasUserInfo: false,
    canIUse: wx.canIUse('button.open-type.getUserInfo'),
    tabId:0,
    pageNum:1,
    searchKey:'',
    inputFocus:false
  },
  //事件处理函数
  // 点击搜索框
  inputFocus:function() {
    this.setData({
      inputFocus:true
    })
  },
  // 获取inpu的val
  inputVal:function(e) {
    this.setData({
      searchKey:e.detail.value
    })
  },
  // 点击确定搜索
  inputcConfirm:function() {
    this.setData({
      pageNum:1,
    })
    this.getList();
  },
  // 切换产品类型
  tabChange:function(e) {
    var tabId = e.currentTarget.dataset.id;
    var _this = this;
    _this.setData({
      tabId:tabId,
      pageNum:1
    })
    _this.getList();
  },
  // 跳转个人中心
  perlCenter:function() {
    wx.navigateTo({
      url: '../perlCenter/perlCenter',
    })
  },
  // 跳转产品介绍
  product:function(e) {
    var id = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: '../product/product?id='+id,
    })
  },
  // 获取列表
  getList:function() {
    var _this = this;
    wx.showLoading({
      title: '加载中。。。',
    })
    wx.request({
      url: app.globalData.root+ 'api/product/getProductList',
      data: {
        pageNum:_this.data.pageNum,
        categoryId:_this.data.tabId,
        searchKey:_this.data.searchKey
      },
      header:{
        token:app.globalData.token
      },
      method:'POST',
      success:function(res) {
        wx.hideLoading();
        console.log(res);
        if(res.data.code==1) {
          _this.setData({
            productList:res.data.data
          })
          
        }else {
          wx.showToast({
            title: res.data.errorMsg,
            icon:"none"
          })
        }
      },
    })
  },
  onLoad: function () {
    var _this = this;
    wx.showLoading({
      title: '加载中。。。',
    })
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
        console.log(res);
        var code = res.code;
        // 获取用户信息
        wx.getSetting({
          success: res => {
            if (res.authSetting['scope.userInfo']) {
              // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
              wx.getUserInfo({
                success: res => {
                  // 可以将 res 发送给后台解码出 unionId
                  console.log(res);
                  app.globalData.userInfo = res.userInfo;
                  var data = {
                    code:code,
                    encryptedData: res.encryptedData,
                    iv: res.iv,
                  }
                  console.log(data);
                  wx.request({
                    url: app.globalData.root+ 'api/user/wxLogin',
                    data: data,
                    method:'POST',
                    success:function(res) {
                      console.log(res);
                      app.globalData.token=res.data.data.token;
                  // 获取分类
                      
                      wx.request({
                        url: app.globalData.root+ 'api/product/getCategoryList',
                        data: {},
                        header:{
                          token:app.globalData.token
                        },
                        method:'POST',
                        success:function(res) {
                          wx.hideLoading();
                          console.log(res);
                          if(res.data.code==1) {
                            _this.setData({
                              classification:res.data.data
                            })
                            _this.getList();
                          }else {
                            wx.showToast({
                              title: res.data.errorMsg,
                              icon:"none"
                            })
                          }
                        },
                      })
                    },
                  })
                  
                  // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
                  // 所以此处加入 callback 以防止这种情况
                  if (this.userInfoReadyCallback) {
                    this.userInfoReadyCallback(res);
                  }
                }
              })
            } else {
              _this.setData({
                isOnShow:true
              })
              wx.redirectTo({
                url: '../login/login?scene=' + _this.data.scene,
              })
            }
          }
        })
      }
    })
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    var _this = this;
    var tabId=_this.data.tabId,pageNum=_this.data.pageNum*1,searchKey=_this.data.searchKey,productList=_this.data.productList;
    pageNum++;
    wx.request({
      url: app.globalData.root+ 'api/product/getProductList',
      data: {
        pageNum:pageNum,
        categoryId:tabId,
        searchKey:searchKey
      },
      header:{
        token:app.globalData.token
      },
      method:'POST',
      success:function(res) {
        wx.hideLoading();
        console.log(res);
        if(res.data.code==1) {
          for(var i=0;i<productList.length;i++) {
            productList.push=(res.data.data[i]);
          }
          _this.setData({
            productList:productList,
            pageNum:pageNum
          })
          
        }else {
          wx.showToast({
            title: res.data.errorMsg,
            icon:"none"
          })
        }
      },
    })
  },
})
